The present invention relates to a system for controlling a plurality of robots and a method for controlling a system of a plurality of robots, the system comprising a plurality of robot controllers, each with an associated motion system adapted to control attached robots, with each controller being able to receive motion instructions from at least one motion instruction source the controllers being connected with each other by a computer communication network.
By using a single controller for multiple robot coordination the xe2x80x9clocality of coordinated controlxe2x80x9d is limited to the number of robots controllable by that controller. For example, a typical coordination problem with multiple robots is to transfer a part between robots without using intermediate fixtures. A controller capable of controlling only four robots would permit coordinated handoff of parts between the four robots, but would require a conventional fixture station or other solution when handing the part to a fifth robot controlled by a separate controller. On the other hand, a plurality of robots each having its own controller, with all controllers connected by a communication line, does not have this locality limitation.
The U.S. Pat. No. 6,330,493 B1 shows a control system applied to several robot controllers connected by a communication line. This solution solves the specific problem of limitation of robots being able to be coordinated by one controller, but it solves this problem only with marginal precision, and leaves other coordination problems unsolved.
Such coordination problems of several robots include:
Load sharingxe2x80x94The ability for two or more robotic machines to carry the same part or load requires the robots to keep a fixed spatial relationship while carrying the load. This particular coordination problem is also solved in the prior art, but is introduced here as background to the other coordination problems.
Parts mating while processingxe2x80x94In addition to the requirement for a fixed spatial relationship among two or more robots, one or more additional robots must perform a process relative to the assembly, and one or more robots may enter and leave the assembly during processing (cf. further explanation below).
Fixtureless transferxe2x80x94One or more robots may need to rendezvous with one or more other robots while all of them are in continuous motion.
Manual motion of coordinated operationsxe2x80x94When a production line is stopped because of an error, with two or more robots carrying the same part or holding multiple mating parts, it may be necessary to manually move the multiple robots in coordination to prevent breaking or dropping the part.
Teaching of coordinated operationsxe2x80x94In activities where a fixed spatial relationship is maintained, such as part mating or load sharing, it is useful if the various robots need to be taught only one or a few grasping positions relative to the parts. Each robot should not have to be taught the entire part path, and if the part path is changed, only one of the robots should have to be re-taught to effect the path change.
Time coordinated motionxe2x80x94Multiple robots may need to carry out identical or mirrored processes in lock step timing with each other. There is no spatial relationship among the robots, but time alignment of their motions may be required.
The most complex of the above problems is simultaneous parts mating while processing. An example is the process of joining two small parts to a large part by arc welding using three robots without stationary fixtures: Robot 1 carries the large part. Robot 2 carries the two small parts, one at a time, and Robot 3 carries the arc-welding torch and performs the welding process. Such a process normally requires the large part to move simultaneously and time coordinated with the welding robot so that the welding robot can reach the entire part and the molten seams maintain a nearly horizontal orientation. This in turn requires spatial coordination of the motions of Robots 1, 2 and 3. Robot 2 must maintain a fixed position relative to Robot 1, so that the small part remains properly mated with the large part, and Robot 3 must carry out its welding process relative to the moving parts held by Robots 1 and 2.
As the weld proceeds, it is possible for Robot 2 to release its grasp of the small part, because the part has been tacked into position. Robot 2 can leave the assembly while the assembly motion is in progress and go fetch the second small part. Robot 2 returns with the second small part to rendezvous with the assembly. Robot 3 welds the second small part to the large part, again while all three robots move with spatial coordination.
The interesting features of said process besides the changing spatial relationships of the three robots are the following:
1. Robot 2 both leaves and joins the assembly while the latter may be in motion and changes from spatially coordinated motion to independent motion, or vice-versa, while the assembly may be in motion.
2. Typically, a portion of the welded seams are defined with respect to the small parts. For those portions, the arc welding robot is moving relative to the small parts, which at the same time must maintain a fixed position with respect to the large part. This is referred to as a xe2x80x9cchain of spatial dependenciesxe2x80x9d.
In the aforementioned U.S. Pat. No. 6,330,493 B1 a xe2x80x9csynchronous cooperative operationxe2x80x9d is defined. This operation occurs between a master and one or more slave robots. The definition of which robot is master and which are slaves is kept in software-based xe2x80x9clink patternsxe2x80x9d. Link patterns change only between program sets. Thus, to change a given robot from coordinated operation with another robot to independent operation requires starting a new program in a sequence, and continuous motion between programs is not provided for. Thus, it is not possible to have a robot change from slave to independent operation and back to slave again all while the master remains in motion, as required in point 1 above. More generally, rendezvous and departure of one robot with another in motion is not possible with a single xe2x80x9csynchronous cooperative operationxe2x80x9d as defined in U.S. Pat. No. 6,330,493 or even multiple such operations.
Fixtureless transfer of parts also requires a rendezvous capability and a change from coordinated to independent operation as described above. The prior art is also not suitable for such coordination activity, except where all robots are controlled by a single controller, which in turn limits the locality of coordinated control.
As noted above, in the related art the designation of Master and slave robots is kept in link patterns, which can only be changed by changing programs. Thus, it is not possible for a robot to be both a master and a slave in the same program, and it is not possible for a robot to be both master and slave simultaneously. Thus, there is no way to implement the xe2x80x9cchain of spatial dependenciesxe2x80x9d required by point 2 above using the related art.
An example of coordination activities listed above is load sharing. Once the coordinated activity begins, there is no relative motion between the grippers of the various robots carrying the part, so any method that can provide for a fixed spatial relationship during programmed motion may successfully carry out this activity with some level of precision. However, if production operation is stopped in the middle of such an activity, and it is required that the shared or mated assembly be moved out of the way, it must be possible to have a manual motion capability to move the shared assembly.
Using load sharing as a simple example, one can examine the activity of teaching a coordinated operation. Assume a heavy part that requires three or more robots to carry the part. One possibility is to provide a lightweight mockup, so that teaching can be carried out with one robot at a time. One would like to teach the path of this part in a conventional way, e.g. by simply using the standard manual motion and teaching system of the first robot to guide the robot carrying the part along the required path, recording required path positions and control program instructions along the way. Such a technique is provided for in most industrial robot systems today.
A first step in this technique is to determine a reference frame on the part that can be used as a basis for jogging the part held by the robot. With most industrial robots manufactured today, it is possible to teach a reference frame, known as the Tool Center Point (TCP) at a fixed position relative to the tooling mounting plate of the robot. In this case, the common reference frame on the part becomes the TCP for the first robot. The taught path of the part using the first robot is actually the path of that part reference frame. By teaching a TCP for the first robot, and two grasp points for the other two robots relative to the common part reference frame (TCP), the three robots can remain locked together both during manual motion and during playback of the desired part path.
Once the program and its associated taught positions and other data are prepared, the remaining two robots must be instructed on how to share the load. Ideally, this should be done by simply teaching a grasp point for each of the two remaining robots at two points on the part. It is desirable to do this by teaching these grasp positions relative to the common reference frame on the part, i.e. the TCP of the first robot. In this way, regardless of the path of the part carried by the first robot, if the other two robots know the position on the reference frame, they need only to move to their respective grasp positions relative to that reference frame to grasp the part, and remain at their respective grasp positions relative to the reference frame to carry the part.
The technique is particularly useful during the tedious teaching process, when the taught path of the part can change often. Once the actual heavy part replaces the lightweight substitute part, it is critical that the two xe2x80x9chelperxe2x80x9d robots keep their relative grasp position during any final touch-up, re-teaching or manual motion of the path carried out by the first robot.
The two primary requirements of the above technique are the ability for coordinated manual motion and the ability to teach positions for one robot relative to reference frames defined on another robot. Neither of these capabilities are provided in the prior art, except where the robots involved are controlled by a common controller.
Time coordinated motion between two or more robots is a useful form of coordination where the robots do not have a direct spatial relationship, but must run identical motions in separate programs in lock step. For example, when each of two robots follows an identical or mirrored path on a common part or two parts and the parts are mounted on a movable table, then the two robots must remain together during execution, so that they keep the same relative position to the moving table. This is quite common in the automotive industry where left- and right-handed versions of a part are to be assembled and welded simultaneously. It is common that the parts are large and must be carried on a single large table positioner to rotate them while the two robots weld the separate left- and right-handed parts. If the two robot control programs do not run in lock step, then it is possible that the table would move the part out of reach of one robot, while the other is properly welding, or that a molten seam on one part would deviate from its intended run on that part while the other is correctly welded. Solving this problem by starting and stopping one robot to keep in step with the other is not possible in arc welding or other processes where the seam must be welded continuously.
The above problem can be generalized to more than two robots in cases where many parts are carried on a common movable table or rotating axis, such that there is one processing robot for each part, and all robots must be coordinated in time to match relative position to the common table or axis. In this general form, each robot must maintain a spatial relationship with the table (but not necessarily with the other robots), and the motions generated by the robot control programs must remain coordinated in time with each other.
Coordination in time of the motion of two or more robots means that the motions must begin and end together, and in general follow the same relative acceleration and speed profile on each robot. Since the motion distances might be slightly different for each robot, this is not a straight forward task, and the ability to synchronize motion in this way between robots controlled by separate controllers has not been implemented in the prior art.
Another important issue common to all of the above types of coordinated motion is accuracy. When two or more robots carry multiple mating parts, or a common part, it is undesirable to have any relative motion between the robots, as this could cause stress in the part or misalignment of the mating parts. In the prior art, independent controllers, connected only by a communication line, may have misalignment between their internal clocks, and the output of their respective motion systems to their respective servo systems may not occur at exactly the same time. Such an error in registration at update times can cause stress or misalignment. For example, if the interpolation interval of the controllers is 16 milliseconds, and the interpolation clocks of two controllers are misaligned by nearly a full clock cycle, then an output from each interpolator will be used by the respective servo systems as much as 16 milliseconds apart. At a speed of 1 meter per second this induces 16 millimeters of misalignment between the robotic machines. An error of this magnitude is not tolerable in applications such as those found in the automotive industry, for example, where robot accuracies near 1 millimeter are expected.
In the U.S. Pat. No. 6,330,493 B1, where multiple robots are controlled by different controllers; applications are limited to low speed or applications where misregistration between coordinating robotic machines is permitted.

Several methods and standards exist for aligning clocks between systems. Some methods provide for computer clock alignment using standard communication lines such as Ethernet For example, the new IEEE 1588 standard provides this capability. Various publications, such as Horst F. Wedde and Wolfgang Freund, Harmonious internal clock synchronization, in EUROMICRO Workshop on Real-Time-Systems 2000 (ERST""00), IEEE Computer Society Press, p. 175-182, also suggest similar methods. However, the problem in a typical robot controller is that there are several clocks which all must be aligned for motion registration between two or more controllers. For example, a hardware clock is typically used in servo loop hardware to control the closure rate of digital servo loops. There may also exist a subinterpolator that runs at a multiple of the servo loop clock interval and an interpolator that runs at another multiple of the subinterpolator interval. These intervals usually must remain fixed and precise.
The published algorithms and methods, such as IEEE 1588, discuss how to align the execution of computer tasks or algorithms among systems connected by a communication line, but this does nothing to align the actual hardware clocks of the individual systems connected by the communication line. So for example, interpolators might be aligned with each other by these methods, but subinterpolators might be based on the individual hardware clocks, and these would not be aligned. In addition to the methods suggested by the published standards and algorithms, additional methods are needed to align ALL clocks including hardware clocks
In summary, following is a list of requirements for coordinated activities between robots controlled by separate controllers that are not solved in the prior art and therefore form an objective for the present invention:
rendezvous and departure of one robot onto a part or assembly held by one or more other robots in order to support mating parts with assemblies and to support fixtureless transfer of parts between robots;
manual motion of parts or assemblies held by multiple robots in order to support maintenance and teaching;
teaching positions for one robot relative to a reference frame on another robot in order to make coordinated applications easier to teach and more reliable;
time coordination of similar motions on different robots in order to permit them to follow auxiliary axes simultaneously and to support repeatable process relative motions; and
clock alignment among robot controllers in order to make motion registration between robots accurate.
It should be understood that all the above features in the prior art only exist on single commercially available robot controllers capable of controlling multiple robots from the single controller. When individual controllers are used for each robot, and the controllers communicate by a standard communication line such as Ethernet, these features do not exist.
There is a need for a multiple controller solution for industrial users, because cells of robots are becoming larger, and, therefore, the required xe2x80x9clocality of controlxe2x80x9d is becoming larger than practical for a single controller. For example, to support one or more of the above listed coordinated activities in a cell with eight robots requires a controller capable of controlling over 48 axes, which is not commonly available and not practical. With the present invention, such a controller is not needed.
Accordingly, the general object of the invention is to provide a method and a robot control system for controlling multiple robots where various forms of coordinated motion are required among the robots and the controllers for those machines are connected via a standard computer communication line.
The invention solves the aforementioned motion coordination problems among the robots by providing a method of the above-mentioned kind wherein time coordinated motion instructions are defined and executed by said control program, each such time coordinated motion instruction with unique label, such that information is communicated among said plurality of controllers and wherein robot motion produced by like labeled time coordinated motion instructions executed on any of said plurality of controllers executes in such a way that they jointly begin at a first time, follow a common relative velocity profile, and jointly end at a second time.
To solve the aforementioned problems, the invention furtheron provides a system of the above-mentioned kind wherein said control program is arranged for defining and executing a uniquely labeled time coordinated motion instruction for communicating information among said plurality of controllers and wherein said controllers are arranged for synchronized execution of like labeled time coordinated motion instructions such that said instructions execute in such a way that they jointly begin at a first time, follow a common relative velocity profile, and jointly end at a second time.
Preferentially, said motion instruction source is local to the controller. However, in a alternative embodiment said motion instruction source which may be a control program, can also be remote from the controller.
Each robot controller contains at least one motion system capable of controlling attached robotic machines (robots).
However, the invention relates in particular to coordination problems between robots controlled by separate controllers. Each controller may also contain at least one motion instruction source, or it may contain no motion instruction source, and the motion instructions for that controller may originate remotely. The invention specifically relates to coordination problems where motion instruction sources are on separate controllers.
A motion instruction source includes but is not limited to instruction sources like a control program interpreter, a directly executed compiled control program, a manual motion pendant device, or any operator device designed to give a human operator control of robot motion.
Another aspect of the invention is the ability to link the motion of a xe2x80x9cdependent frame of referencexe2x80x9d associated with some point on one robot to an xe2x80x9cindependent frame of referencexe2x80x9d associated with some point on a different robot controlled by a different controller. The motion of the dependent frame of reference depends on the motion of the independent frame of reference. When the independent frame moves, so does the dependent frame. However, if the dependent frame is moved the independent frame does not necessarily move.
To this end, the invention particularly relates to a system for controlling a plurality of robots, said system comprising a plurality of controllers, each having an associated motion system adapted to control attached robots; at least one of said controllers having at least one motion instruction source; a computer network over which said controllers communicate; at least one first controller of said plurality of controllers having a position sending system for sending a commanded position of said attached robot over said network; at least one second controller of said plurality of controllers having a position receiving system for receiving said commanded position over said network from at least one of said first controllers; said second controller arranged for defining at least one first robot reference frame with a fixed position relative to some point on said robot attached to said first controller (independent reference frame) and at least one second robot reference frame with a fixed position relative to some point on said robot attached to said second controller; said second controller arranged for maintaining a certain spatial transformation relationship (dependency relationship) between said second robot reference frame (dependent reference frame) and said independent reference frame; said relationship specified by said motion instruction source of said second controller.
Concerning the same aspect of the invention, the latter furtheron relates to a method for controlling a system of a plurality of robots, said system further comprising a plurality of controllers, each having an associated motion system adapted to control attached robots; at least one of said controllers having at least one motion instruction source; and a computer network over which said controllers communicate, wherein at least one first controller of said plurality of controllers sends a commanded position of its attached robot over said network, wherein at least one second controller of said plurality of controllers receives said commanded position over said network from said first controller, wherein said second controller defines at least one first robot reference frame with a fixed position relative to some point on said attached robot of said first controller (independent reference frame) and at least one second robot reference frame with a fixed position relative to some point on said attached robot of said second controller, wherein said second controller by using said commanded position maintains a spatial transformation relationship (dependency relationship) between said second robot reference frame (dependent reference frame) and said independent reference frame by moving its attached robot to maintain said transformation relationship and wherein said dependency relationship is defined by a motion instruction source of said second controller. Preferably said spatial transformation relationship is a Cartesian transformation relationship.
While association of a motion of one robot to that of another robot has been done in the prior art, prior systems have either focused on subjecting all of the robots to the control of common controller, or, where the robots are on separate controllers, such an association was only possible during the execution of specific control programs (see above).
According to the invention, a dependent frame of reference keeps its relationship to an independent frame of reference at all times, even while the corresponding controller switches between instruction sources. This is particularly important when switching from production operation to manual operation while two robots are carrying a part. Preferably, said spatial relationship is a Cartesian transformation relationship.
The invention provides this capability by maintaining knowledge of the independent frame of reference on the controller where the dependent frame of reference is defined. In this way, any instruction source providing motion instructions to that controller""s motion system may provide those instructions relative to the independent frame of reference.
In order to achieve this, in a preferred embodiment of the inventive system, said second controller is arranged for maintaining said transformation dependency relationship between a dependent reference frame and an independent reference frame while there is no command from any one of said motion instruction sources of said second controller and/or when said second controller changes from one of said instruction sources to another. The persistent knowledge of the independent frame of reference is maintained in the background by a transmission of state information between the controller of the robot FOR which the independent frame is defined and the controller ON which the independent frame is defined. This in turn is done using a subscription by the controller ON which the independent frame is defined to the controller of the robot FOR which the frame is defined. Also, a controller for one robot may keep multiple subscriptions to different independent frames simultaneously.
In a preferred embodiment of the inventive method said second controller maintains said transformation dependency relationship between said dependent reference frame and said independent reference frame while there is no command from any of said motion instruction sources of said second controller and/or when said second controller is changing from one of said motion instruction sources to another.
In this way, using the inventive control method and system, several coordination problems can be solved over the prior art where robots are controlled by separate controllers:
Positions may be taught relative to an independent frame of reference for use in motions of the robot where the dependent frame is defined. That is, according to a further embodiment of the inventive method a teaching system of said second controller, using said commanded position, records a taught position defined relative to said independent reference frame for later use, such that upon later use said second controller causes said second robot reference frame to follow a path prescribed by a motion instruction source of said second controller to said taught position. In a preferred embodiment of the inventive system a teaching system of said second controller is arranged for recording taught positions defined relative to an independent reference frame for later use.
By moving the TCP of a robot to a position defined relative to an independent frame, the TCP becomes a dependent frame of reference, and this dependency remains persistent. Even after termination of the motion, the TCP remains dependent, and will move automatically whenever the independent frame moves. In general, according to a further embodiment of the inventive method said dependency is created by a motion of said second robot reference frame to a position defined relative to said independent reference frame from a position defined relative to a reference frame different from said independent reference frame. Accordingly, in the inventive system said motion instruction source of said second controller preferably is arranged for creating said dependency relationship between a second robot reference frame and said independent reference frame.
The motion to a destination is automatically carried out relative to the independent frame of reference. The robot for which the independent frame is defined may be moved anytime and the motion issued by the instruction source for the dependent frame will remain the correct relative motion. In another embodiment of the inventive system said motion instruction source of said second controller is arranged for issuing a relative motion instruction such that said dependency relationship of said second controller is a motion of said dependent reference frame defined relative to said independent reference frame.
Since the independent frame of reference is constantly maintained, manual motions may also be carried out relative to that frame of reference. When the manual motion stops, the dependent frame will stop relative to the independent frame.
It is possible to carry out a motion of a robot from a stationary frame, e.g. defined relative to world to an independent frame defined on a moving robot. In order to avoid an instantaneous change in velocity form 0 to the velocity of the moving independent frame, state information, such as velocity and acceleration of the independent frame may also be kept. Thus a smooth motion onto or off the independent frame may be planned. It is therefore also possible to issue motions of the TCP of a first robot from an independent frame on a second robot to an independent frame on a third robot. The TCP motion will start at 0 speed relative to the second robot, move smoothly and stop at 0 speed relative to the third robot. This capability is important to permit one robot to rendezvous with and depart from a frame of reference defined on a second robot.
Historically, in the prior art, this is similar to robots moving onto and off of moving conveyor systems. However, in those systems, the conveyor sensors are connected directly to the same controller as the robots. In the prior art where robots are on separate controllers, no such rendezvous and departure is provided for between one robot and another.
According to a further development of the inventive method said dependent reference frame defined with respect to a robot attached to a first controller is defined as an independent reference frame with respect to said robot by a different controller. This is true because a controller can subscribe to frame information from another controller at the same time it publishes the same information to a third. For example, this permits one robot to be taught weld points on a small part that is in turn held by a second robot relative to a large part held by a third.
While the previous aspect of the invention supports spatial coordination activities among robots, temporal coordination is sometimes also necessary. In the prior art, where two or more robots are controlled by the same controller, it is possible to move one robot simultaneously with another by simply issuing the motion from one control program instruction to both robots. This is necessary in order to coordinate a spatial relative motion of a robot R2 relative to a robot R1 simultaneously to a motion of robot R1. In prior art of arc welding for example, it is very common to move a robot relative to a table positioner in time coordination with the motion of that positioner. This is how a molten puddle can be kept in its intended run, e.g. horizontal while the robot traverses the weld seam.
However, when the instruction sources reside on separate controllers, a single instruction cannot be issued. Therefore, another aspect of this invention is to permit temporally synchronized motions from multiple motion instruction sources. As indicated above, the invention therefore involves a new kind of motion statement, communication and coordination between controllers to carry out synchronized motions on the separate robots. To this end, the system according to the invention is characterized in that said control program is arranged for defining and executing a uniquely labeled time coordinated motion instruction for communicating information among said plurality of controllers and wherein said controllers are arranged for synchronized execution of like labeled time coordinated motion instructions such that said instructions execute in such a way that they jointly begin at a first time, follow a common relative velocity profile, and jointly end at a second time.
As stated above, the synchronized motion statement uses a unique label on the statement. Each control program running on its own controller will wait at the synchronized motion statement for control programs on all other controllers to reach the same labeled statement. Then, each motion system running on its own controller will coordinate the motion planning of its motion along with all other controllers, so that all robots carry out their motions with the same motion profile. That is, they all start, accelerate, move at constant speed, and decelerate together, thus reaching their destinations at exactly the same time. The robot requiring the most time for its motion will govern all others to take the same time.
Another aspect of the invention is the improvement of accuracy by use of clock alignment. Several methods and standards now exist for aligning clocks across a communication line, as discussed above. However, it is necessary that interpolators and subinterpolators be aligned so that the actual output from servo systems occur at the same time.
Therefore, the system according to the invention preferably comprises an associated clock for each controller that produces timing information based on a temporal reference frame; and a system for supplying a synchronization signal to said controllers that periodically aligns the temporal reference frames of said clocks; said controllers being arranged for using said clocks to control said associated motion systems such that said attached robots controlled by said motion systems operate with clock-alignment.
Accordingly, the inventive method preferably is characterized in that an associated clock in each controller produces timing information based on a temporal reference frame; wherein a system for supplying a synchronizing signal to said controllers periodically aligns the temporal reference frames of said clocks; and wherein said controllers use said clocks to control said associated motion systems such that said attached robots controlled by said motion systems operate with clock-alignment.
The invention thus provides for the hardware clocks on the plurality of robot controllers to be aligned with each other so that the subinterpolation intervals are aligned, and it provides for interpolator interval alignment as well.
In a preferred embodiment of the inventive system said clocks are hardwired to said controllers.
In another preferred embodiment of the inventive method a signal with a first frequency and phase is used to adjust the phase of one of said clocks operating at a second higher frequency on each of the plurality of controllers to make the phases of said higher frequency clocks the same in all of said plurality of controllers; and wherein said first frequency signal is proportional to the out-of-phase-ness. To this end, in another embodiment of the inventive system, said clocks are connected to said controllers via phase locking means, said phase locking means comprising a serial synchronizing connection and/or an Ethernet connection.
The result is that time coordination in time synchronized motions is nearly perfect, and no position alignment error due to clock alignment is introduced in spatially coordinated motions.
The invention will now be described in more detail with reference to the accompanying drawings which show preferred embodiments of the inventive method and system.